1. Field of the Invention
The present invention relates generally to storing and forwarding (transmitting) facsimile (fax) information using remote access servers and particularly to improving the efficiency and costs associated with such fax transmissions by bypassing re-scanning of the fax information.
2. Description of the Prior Art
As use of the Internet has gained popularity in recent years, a variety of different types of information, such as video, audio and fax data, has been transferred using this medium of communication. In the case of fax information, remote access server devices are used to store fax information received from a remotely-located transmitting fax machine and to forward (or re-transmit) the received fax information to a remotely-located receiving fax machine. Once stored within the remote access server and prior to re-transmission thereof, the fax information is decompressed (or decoded) and re-compressed (encoded). The reason for such a seemingly-redundant and unnecessary process is primarily to attempt to detect and to remove any potential errors incorporated within the fax information prior to re-transmission thereof to the receiving fax machine. This is particularly of interest when using fax machines incapable of performing error correction.
Other reasons for such a seemingly unnecessary process include incompatibility and cost savings, which will be discussed in further detail hereinbelow. Briefly, a compatibility issue is likely to arise when different encoding schemes are employed. The only encoding scheme guaranteed to be supported by all systems is one-dimensional encoding. Cost savings are effectuated when a fax document is forwarded to a destination that supports a better compression technique than that which was used to encode the original document. In this regard, it may be advantageous to re-encode the original document thereby reducing the size thereof.
In FIG. 1, there is shown a high-level diagram of a prior art conventional fax transmission and reception system 10 including a transmitting fax machine 12, a telephone signal transferring medium 14 and a receiving fax machine 16. The medium 14 is generally a public switching telephone network (PSTN) or plain old telephone system (POTS). Fax information is transmitted, through a telephone line, through the medium 14, to the receiving fax machine 16. During this process, several steps occur as shown in flow chart form in FIG. 2.
In FIG. 2, steps are shown, in flow chart form, of processing of fax information, in the form of a fax document, through the fax machines 12 and 16 of FIG. 1. At step 18, an original fax document is to be transmitted. The original fax document is shown to be scanned into the transmitting fax machine 12 (in FIG. 1), which may optionally store an image of the original fax document in the fax machine 12. Thereafter, at step 20, the image of the original fax document (the scanned document) is encoded and at step 22 the encoded image is transmitted, through the PSTN or POTS medium 24 by dialing the telephone number of the receiving fax machine.
At step 22, after dialing, certain negotiations are conducted to establish communications between the transmitting fax machine 12 and the receiving fax machine 16 prior to the transmission of the scanned and encoded image. For example, during negotiations, the encoding algorithm that is to be used is specified and negotiated. The International Telecommunication Union (ITU) has specified certain parameters for the type of encoding to be employed to properly conduct transfer of fax information between fax machines. Examples of such standards are T.4 and T.6. Additionally, a standard, T.30, entitled “Procedures For Document Facsimile Transmission in the General Switched Public Network” defines other procedural parameters used by fax machines for communications therebetween.
The encoded image is ultimately transmitted through the PSTN or POTS 24 and thereafter received by the fax modem 26. During transmission at step 22, in FIG. 2, the image is transmitted using analog signals, through the conventional telephone system (PSTN or POTS) to the receiving fax machine 16. At step 26, the receiving fax machine 26 converts the analog signal to digital form, i.e. in the form of binary 1's and 0's. Thereafter, the image is provided to the image decoder at step 28. At step 28, the image is decoded (or decompressed) and at step 30, the decoded image is printed, viewed on a monitor or stored in a storage area on a computer system for later viewing.
By way of additional background information, some primary concepts relating to the encoding and decoding of fax information are now discussed. To keep it simple to the reader, this discussion will be limited to black and white fax documents and images only.
An image is generally represented as a matrix of black and white dots (or pixels). In FIG. 3, there is shown an example of a fax image 32 of the words “HELLO!” As shown in FIG. 3, the image 32 is represented by a matrix of 23 columns and 8 rows. Each of the eight rows is commonly referred to as a scan line. To place things into perspective, a fax page typically includes 1728 columns (1728 dots or pixel in a scan line) and approximately 1100 or 2200 scan lines per letter page. Thus, a typical fax page includes 1728 pixels per scan line×11 inches (length of a fax page)×98 scan lines/inch, or 1.8 million pixels, for a fax page being transmitted using standard resolution. For a high-resolution transmission, typically there are 196 scan lines/inch and thus, 3.6 million pixels in a fax page. It will take 1.8×106/8 or 230 kilobytes of storage capacity to store an 8.5×11 inch page of a fax image using standard resolution and approximately 460 kilobytes of storage space using high resolution.
Without compression being performed, using a fax machine that includes a modem having a speed of 14,400 bits/second (bps), it will take approximately 2 minutes to transmit a page of fax using standard resolution or 4 minutes using high resolution. Fax modem transmission speeds are typically between 2,400 to 14,400 bps. At a speed of 2,400 bps, it will take 12 minutes for one page to be transmitted. Obviously, these kinds of speeds are too slow for the ever-rapidly increasing desire for faster transmission rates, thus, the advent of compression of fax information.
Compression of fax information uses run-length encoding, which takes advantage of the repetitive dots of a black and white fax image to produce a smaller size fax image. For example, where there are 4 black pixels in a row, without run-length encoding or any type of compression, the 4 black pixels would be represented by a sequence of 4 bits of ‘1’s whereas run-length encoding would represent the 4 black pixels by a two-bit representation of the binary number ‘4’ thereby reducing representation of the 4 black pixels from 4 bits to 2 bits. An example of a run-length encoding is shown in FIG. 4.
In FIG. 4, representation of the image 32 (in black and white), shown in FIG. 3, is shown to be run-length encoded. This encoding is done starting from the number of white pixels for each scan line. For example, in the first row in FIG. 4, the first row of the image 32 (in FIG. 3) is encoded by counting the number of white pixels appearing at the beginning of the first row of the image 32. Since the first pixel of the image 32 is black, the number of white pixels is ‘0’ as indicated in the first row and column position of FIG. 4. Next, there is one black pixel at the first position of the first row and column of the image 32, thus, the value appearing as the number of black pixels in the second column of the first row of FIG. 4 is ‘1’. Next, there are two white pixels in a row-sequence in the first scan line following the first black pixel in image 32 of FIG. 3. Therefore, the value ‘2’ appears in the third position of the first row of FIG. 4. Next, since there is one black pixel after the two white pixels in the image 32, the value ‘1’ appears in the fourth position of the first row of FIG. 4. Following the same, there is one white pixel after the black pixel in the image 32 of FIG. 3. Thus, the value ‘1’ appears in the fifth position of the first row of FIG. 4. There are 4 black pixels sequentially appearing in the image 32 after the white pixel, thus, the value ‘4’ appears in the sixth column of FIG. 4. Next, there are 13 white pixels sequentially-positioned, thus, the value 13 appears in the seventh position of FIG. 4 followed by a value of ‘1’ representing the last black pixel in the first scan line of the image 32.
Each scan line of the image 32 is similarly run-length encoded and represented in a respective row of FIG. 4. Such encoding, however, still requires the entire image 32 to be examined before it can be encoded as described above. It has been estimated that the additional time required for such examination is approximately 30%. Another problem with using solely run-length encoding as described hereinabove is that in the event a particular scan line is made up of one type of pixel, i.e. black or white, in its entirety, assuming there are 1728 pixels in the scan line, 11 bits are required to represent the scan line.
Differences in encoding are somewhat dependent upon the way in which run-length encoding is implemented. In FIG. 5, an image bitmap is shown to undergo run-length encoding at 34. A bitmap of an image is the scanned image represented in ‘1’s and ‘0’s for black and white images. After run-length encoding at 34, one of two types of encoding may be performed, one-dimensional encoding or two-dimensional encoding. At 36, one-dimensional encoding is implemented where in accordance with statistical information, the possibility of having certain sequences of bits appear more often than others is defined. According to this information, run-length sequences are encoded using predefined bit sequences of variable length. These sequences are defined in the T.4 standard. The encoding bit sequences are carefully chosen to minimize the number of bits necessary to encode common images. For example, in most of the images transmitted by facsimile, there are typically many more white dots than black ones (a text page is a good example of such higher occurrences of white dots). This is due to white dots occupying larger areas on a page, such as blank areas, than black dots.
The T.4 standard defines a black run-length having 1 black dot to be represented by the binary value “010” whereas a black run-length having 2 black dots is to be represented by the binary value “11” and a black run-length having 3 black dots is to be represented by the binary value “10”. This is sensical since one black dot is very thin and occurs more rarely than two or three black dots representing well-visible lines, such as visible straight line “|” or a pen stroke.
The same holds true for white run-length representations. The run-length of one white dot is represented by the binary value “000111” whereas the run-length of two dots is represented by the binary value “0111”. Due to the infrequent occurrence of short white run-lengths as compared with short black run-lengths, the former are assigned longer bit sequences than the latter. On the other hand, only binary bits (“010011011”) are required to encode a whole white line, which is a white run-length of 1728 pixels. This type of encoding reduces the file size of standard text documents as well as other types of documents. For example, a certain sequence of bits that are known to have appeared often in the past, may be represented by 3 bits whereas a sequence of bits that is known to have appeared less frequently is assigned a much larger number of bits, such as perhaps 13 or 15 bits. In this manner, an image is condensed significantly and transmitted significantly more efficiently in cases where the image includes sequences that are represented with less number of bits in accordance with the T.4 standard. These bit representations are adjusted so as to achieve maximum compression for images that are typically sent by fax, i.e. printed and handwritten text, simple drawings and the like.
For images where, for example, the bits are alternatively black and white, i.e. one pixel is black and the next one is white and the next one is black and so on, one-dimensional encoding produces a file size that is likely to be bigger than the file size that would have been produced if no encoding was performed, which obviously defeats the purpose of encoding. However, the latter types of images are more rare than frequent-occurring.
In FIG. 5, at 38, optionally, two-dimensional encoding may be performed where the difference between the pixels of two sequentially-situated scan lines is calculated. For example, the first pixel of the first row, in FIG. 3, is compared to the first pixel of the second row and a difference, if there is one, is noted. It just so happens that in the example of FIG. 3, these two pixels are alike and thus no difference would be noted. Similarly, the pixels of the second row would be compared with the pixels of the third row and the difference would be noted and so on. This results in substantially more compact size of the fax file thereby decreasing transmission time and decreasing the need for a larger storage space. However, if the difference in the two lines is substantial, one-dimensional encoding is performed.
In FIG. 6, a prior art fax network system 40 is shown to include a fax machine 42, a PSTN 44, an access server 46, Internet 48 and a user 50. The fax machine 42 transmits a fax document through the PSTN 44 to the access server 46, which includes one or more modem devices for receiving the fax document, performing de-compression and re-compression on the fax document and re-transmitting the document, in the form of a Tag Image File Format (TIFF) file, as an attachment to an email message using Simple Mail Transfer Protocol (SMTP), through the Internet 48, to the user 50. TIFF is defined by Adobe Developer's Association and adopted by the industry-at-large as a standard for file transfers and particularly, the RFC-2306, a subset of this standard, defines fax transmission over the Internet. SMTP is a standard protocol used to transfer email messages over the Internet. It is defined by the RFC-821 and many other related documents. The reason for performing de-compression and re-compression is to remove errors prior to re-transmission of the fax document to its ultimate destination.
Similarly, when the user 50 transmits a fax document to the fax machine 42, the document is transmitted in the form of an email attachment, through the Internet 48, to the access server 46 where it is de-compressed and re-compressed, parsed from the email message and sent as a fax document through the PSTN 44 to the fax machine 42. The reason for re-encoding or re-compressing is that many fax machines do not support error correction mode (ECM). In the absence of ECM, the received image is likely to be corrupted due to errors in transmission. Fax machines try to compensate for errors by re-synchronizing but blank pages or duplicate fax lines end up being printed instead. Quite often, the image is to be viewed by computer software in which case many image viewers are not robust enough. Thus, it is necessary to de-compress the fax document, remove errors, and subsequently re-compress the image.
Another reason for encoding is to save costs. That is, if the sending fax machine is an unsophisticated and thus inexpensive machine, it will send fax documents using a lower quality encoding algorithm such as NH-encoding. The access server can then re-encode the faxed document with a more sophisticated encoding scheme before forwarding the document to its intended receiving fax machine destination thereby enhancing the quality of the fax transmission while employing an inexpensive fax machine.
It should be noted that because encoded fax pages tend to occupy even more space (about 50 kbytes) than non-encoded fax pages, access servers try to re-encode the fax document “on-the-fly”. Thus, it is important to perform the re-encoding as quickly as possible.
FIG. 7 shows, in high-level block diagram form, the functions performed by the access server 46 of FIG. 5, while re-compressing a fax image. At 52, the encoded image is received and at 54, it is decoded to obtain a bitmap. An example of a bit map is presented in FIG. 3. The bitmap is saved at 56. A bitmap may be saved in a reduced resolution fashion such that every other scan line is saved rather than every scan line. This results in reduced resolution of the image in most cases while maintaining the image legible. Alternatively, a bitmap may be converted to a higher resolution image than that which was transmitted by duplicating the scan lines. Such scan line manipulation is shown at 58 in FIG. 7.
At 60, the scan line manipulation is undone to retrieve the original bit map and thereafter, at 62, the image is re-encoded to produce the re-encoded image at 64. The errors in the image, if any, are corrected during decoding at 54. The decoder performs one-dimensional or two-dimensional decoding depending upon which type of encoding has been performed. The first scan line of an image that is to be transmitted is always one-dimensionally encoded and the remaining scan lines are then encoded using one or two-dimensional encoding. This is perhaps better understood with respect to FIGS. 8 and 9.
FIG. 8 presents a high-level block diagram of prior art decoding processing. In FIG. 8, at 70, an encoded image is received and then either one-dimensional or two-dimensional decoding is performed, at 72 and 74, respectively. As previously mentioned, the first scan line is always decoded using one-dimensional decoding. After 72, a run-length representation of the one-dimensionally-decoded image is performed at 75, after which a reference scan line (typically the scan line previous to the current scan line) is saved in a buffer at 76. The reference line is to be used for two-dimensional decoding at 74. As previously discussed, the previous scan line is compared to the current scan line in two-dimensional encoding and decoding. After two-dimensional decoding, a run-length representation of the two-dimensionally-decoded image is performed at 78. The output of the run-length representations of 75 and 78 are combined at 80 and run-length decoding is performed producing a bit map at 82.
As shown in FIG. 9, during re-encoding, the bit map 82 is provided to a run-length re-encoder at 84 for re-encoding thereof after which, the output of the re-encoder compared to a reference scan line, the latter being optionally stored in a buffer 86. This is assuming two-dimensional encoding and decoding is being employed. After the comparison, two-dimensional re-encoding is performed at 90. One-dimensional re-encoding is performed on the first scan line at 88 and alternatively on the remaining scan lines if that is the type of encoding and decoding scheme being employed. The output of the one and two-dimensional re-encoders are combined to form an encoded image at 92. Accordingly, in prior art fax systems and methods, a bit map is generated between decoding and re-encoding of the fax image, which is a time consuming process generally performed by the access server.
Thus, the need arises for a fax system and method, employing packet switching networks including access servers, to reduce the time for decoding and re-encoding fax images thereby increasing the efficiency of the system.